//package com.macro.mall.initialize;
//
//import com.macro.mall.common.es.EsIndexDto;
//import com.macro.mall.remote.EsRemoteService;
//import lombok.extern.log4j.Log4j2;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.ApplicationEvent;
//import org.springframework.context.event.EventListener;
//import org.springframework.stereotype.Component;
//
//import java.io.IOException;
//import java.net.URISyntaxException;
//import java.nio.charset.StandardCharsets;
//import java.nio.file.Files;
//import java.nio.file.Path;
//import java.nio.file.Paths;
//
///**
// * @Author：hwh
// * @Description: Es初始化
// * @name：IntoEs
// * @Date：2024/10/17 21:39
// */
//@Component
//@Log4j2
//public class EsInitialize {
//
//    @Autowired
//    private EsRemoteService esRemoteService;
//
//    @EventListener(ApplicationEvent.class)
//    public void init(){
//        log.info("开始初始化 ES 索引");
//        final String loaded = loadJsonFromResource("Initialize.json");
//        log.info("加载的json为:{}",loaded);
//        try {
//            final EsIndexDto esIndexDto = new EsIndexDto();
//            esIndexDto.setIndexName("product");
//            esIndexDto.setIndexMappings(loaded);
//            esRemoteService.createIndex(esIndexDto);
//
//                log.info("初始化成功");
//
//        } catch (Exception e) {
//            log.error("初始化失败: {}",e.getMessage());
//        }
//    }
//
//    /**
//     *  从资源文件中加载json
//     * @param resourceName
//     * @return
//     */
//    private String loadJsonFromResource(String resourceName) {
//        try {
//            // 获取资源路径并读取文件
//            Path path = Paths.get(getClass().getClassLoader().getResource(resourceName).toURI());
//            return Files.readString(path, StandardCharsets.UTF_8);
//        } catch (IOException | URISyntaxException e) {
//            log.error("读取 JSON 文件时发生错误", e.getMessage());
//            return null;
//        }
//    }
//
//}
